{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# More efficient broadcast of arrays with memmap"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Data movement is where IPython's naive model suffers the most.\n",
    "But knowing about your cluster lets you make smarter decisions about data movement than a simple `rc[:].push`.\n",
    "\n",
    "I ran this example with a cluster on a 64-core remote VM,\n",
    "so communication between the client and controller is over the public internet,\n",
    "while communication between the controller and engines is local.\n",
    "\n",
    "This is an example of 'broadcasting' a numpy array using memmapped files,\n",
    "to reduce the amount of expensive network traffic when several engines are on the same host."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import socket\n",
    "import os, sys, re\n",
    "\n",
    "import numpy as np\n",
    "\n",
    "import ipyparallel as ipp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "rc = ipp.Client(profile=\"mpi\")\n",
    "eall = rc.broadcast_view(coalescing=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, create a map of engine id to hostname"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{0: 'ip-172-31-2-77',\n",
       " 1: 'ip-172-31-2-77',\n",
       " 2: 'ip-172-31-2-77',\n",
       " 3: 'ip-172-31-2-77',\n",
       " 4: 'ip-172-31-2-77',\n",
       " 5: 'ip-172-31-2-77',\n",
       " 6: 'ip-172-31-2-77',\n",
       " 7: 'ip-172-31-2-77',\n",
       " 8: 'ip-172-31-2-77',\n",
       " 9: 'ip-172-31-2-77',\n",
       " 10: 'ip-172-31-2-77',\n",
       " 11: 'ip-172-31-2-77',\n",
       " 12: 'ip-172-31-2-77',\n",
       " 13: 'ip-172-31-2-77',\n",
       " 14: 'ip-172-31-2-77',\n",
       " 15: 'ip-172-31-2-77',\n",
       " 16: 'ip-172-31-2-77',\n",
       " 17: 'ip-172-31-2-77',\n",
       " 18: 'ip-172-31-2-77',\n",
       " 19: 'ip-172-31-2-77',\n",
       " 20: 'ip-172-31-2-77',\n",
       " 21: 'ip-172-31-2-77',\n",
       " 22: 'ip-172-31-2-77',\n",
       " 23: 'ip-172-31-2-77',\n",
       " 24: 'ip-172-31-2-77',\n",
       " 25: 'ip-172-31-2-77',\n",
       " 26: 'ip-172-31-2-77',\n",
       " 27: 'ip-172-31-2-77',\n",
       " 28: 'ip-172-31-2-77',\n",
       " 29: 'ip-172-31-2-77',\n",
       " 30: 'ip-172-31-2-77',\n",
       " 31: 'ip-172-31-2-77',\n",
       " 32: 'ip-172-31-2-77',\n",
       " 33: 'ip-172-31-2-77',\n",
       " 34: 'ip-172-31-2-77',\n",
       " 35: 'ip-172-31-2-77',\n",
       " 36: 'ip-172-31-2-77',\n",
       " 37: 'ip-172-31-2-77',\n",
       " 38: 'ip-172-31-2-77',\n",
       " 39: 'ip-172-31-2-77',\n",
       " 40: 'ip-172-31-2-77',\n",
       " 41: 'ip-172-31-2-77',\n",
       " 42: 'ip-172-31-2-77',\n",
       " 43: 'ip-172-31-2-77',\n",
       " 44: 'ip-172-31-2-77',\n",
       " 45: 'ip-172-31-2-77',\n",
       " 46: 'ip-172-31-2-77',\n",
       " 47: 'ip-172-31-2-77',\n",
       " 48: 'ip-172-31-2-77',\n",
       " 49: 'ip-172-31-2-77',\n",
       " 50: 'ip-172-31-2-77',\n",
       " 51: 'ip-172-31-2-77',\n",
       " 52: 'ip-172-31-2-77',\n",
       " 53: 'ip-172-31-2-77',\n",
       " 54: 'ip-172-31-2-77',\n",
       " 55: 'ip-172-31-2-77',\n",
       " 56: 'ip-172-31-2-77',\n",
       " 57: 'ip-172-31-2-77',\n",
       " 58: 'ip-172-31-2-77',\n",
       " 59: 'ip-172-31-2-77',\n",
       " 60: 'ip-172-31-2-77',\n",
       " 61: 'ip-172-31-2-77',\n",
       " 62: 'ip-172-31-2-77',\n",
       " 63: 'ip-172-31-2-77'}"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "engine_hosts = eall.apply_async(socket.gethostname).get_dict()\n",
    "engine_hosts"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, reverse that to create a map of hostname to engine ids"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'ip-172-31-2-77': [0,\n",
       "  1,\n",
       "  2,\n",
       "  3,\n",
       "  4,\n",
       "  5,\n",
       "  6,\n",
       "  7,\n",
       "  8,\n",
       "  9,\n",
       "  10,\n",
       "  11,\n",
       "  12,\n",
       "  13,\n",
       "  14,\n",
       "  15,\n",
       "  16,\n",
       "  17,\n",
       "  18,\n",
       "  19,\n",
       "  20,\n",
       "  21,\n",
       "  22,\n",
       "  23,\n",
       "  24,\n",
       "  25,\n",
       "  26,\n",
       "  27,\n",
       "  28,\n",
       "  29,\n",
       "  30,\n",
       "  31,\n",
       "  32,\n",
       "  33,\n",
       "  34,\n",
       "  35,\n",
       "  36,\n",
       "  37,\n",
       "  38,\n",
       "  39,\n",
       "  40,\n",
       "  41,\n",
       "  42,\n",
       "  43,\n",
       "  44,\n",
       "  45,\n",
       "  46,\n",
       "  47,\n",
       "  48,\n",
       "  49,\n",
       "  50,\n",
       "  51,\n",
       "  52,\n",
       "  53,\n",
       "  54,\n",
       "  55,\n",
       "  56,\n",
       "  57,\n",
       "  58,\n",
       "  59,\n",
       "  60,\n",
       "  61,\n",
       "  62,\n",
       "  63]}"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "host_engines = {}\n",
    "\n",
    "for eid, host in engine_hosts.items():\n",
    "    if host not in host_engines:\n",
    "        host_engines[host] = []\n",
    "    host_engines[host].append(eid)\n",
    "\n",
    "host_engines"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can measure our baseline overhead: how long does it take to roundrip an empty task on all engines.\n",
    "We shouldn't expect anything to take less time than this."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 165 ms, sys: 40.9 ms, total: 206 ms\n",
      "Wall time: 1.06 s\n"
     ]
    }
   ],
   "source": [
    "%time _ = eall.apply_sync(lambda : None)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's look at how long it takes to send data in the simplest possible way"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "data = np.random.random((512, 512))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "694099ab95124e83b4442ae57a8178e8",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "_push:   0%|          | 0/64 [00:00<?, ?tasks/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 601 ms, sys: 235 ms, total: 836 ms\n",
      "Wall time: 14.6 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "ar = rc[:].push({'data': data}, block=False)\n",
    "ar.wait_interactive()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here we get to the broadcast implementation. Instead of seinding the array directly to every engine via IPP,\n",
    "we:\n",
    "\n",
    "1. lookup each engine's host\n",
    "2. pick one engine on each host\n",
    "3. send the data to one engine per host\n",
    "4. on all engines, load the memmapped array from disk\n",
    "\n",
    "This results in the same data to all engines, but only one send per remote *host* instead of per remote *engine*."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "%px import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "@ipp.interactive\n",
    "def array_to_file(A, name):\n",
    "    \"\"\"write an array to a temporary file, return its filename\"\"\"\n",
    "    import tempfile\n",
    "    with tempfile.NamedTemporaryFile(suffix='.np', delete=False) as tf:\n",
    "        np.save(tf, A)\n",
    "        data_path = tf.name\n",
    "    if name:\n",
    "        globals()[name] = data_path\n",
    "    return data_path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "@ipp.interactive\n",
    "def load_memmap(name, path, mode='r+'):\n",
    "    \"\"\"load a file on disk into the interactive namespace as a memmapped array\"\"\"\n",
    "    globals()[name] = np.memmap(path, mode=mode)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "def bcast_memmap(data, name, client, host_engines):\n",
    "    \"\"\"broadcast a numpy array efficiently\n",
    "    \n",
    "    - sends data to each remote host only once\n",
    "    - loads with memmap everywhere\n",
    "    \"\"\"\n",
    "\n",
    "    # actually push the data, just once to each machine\n",
    "    memmap_path_name = f\"_bcast_array_{name}\"\n",
    "    \n",
    "    one_per_host = rc.broadcast_view([engines[0] for engines in host_engines.values()], coalescing=True)\n",
    "    send_ar = one_per_host.apply_async(array_to_file, data, name=memmap_path_name)\n",
    "    \n",
    "    # load the data on all engines into a memmapped array\n",
    "    async_results = []\n",
    "    e_all = rc.broadcast_view(coalescing=True)\n",
    "    return e_all.apply_async(load_memmap, name, ipp.Reference(memmap_path_name))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1fddb505455d45a084d0047d6993ecc6",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "load_memmap:   0%|          | 0/64 [00:00<?, ?tasks/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 237 ms, sys: 50.8 ms, total: 288 ms\n",
      "Wall time: 1.65 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "ar = bcast_memmap(data, 'data', rc, host_engines)\n",
    "ar.wait_interactive()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So that's a lot quicker! And a lot less memory used in both the client and the scheduler."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[0:6]: \u001b[0m217636.91910151643"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:02.879823",
      "data": {},
      "engine_id": 0,
      "engine_uuid": "891211e6-57b8aa2b7d6f25af4ed58166",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "217636.91910151643"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_195",
      "outputs": [],
      "received": "2021-07-01T13:00:02.946967",
      "started": "2021-07-01T13:00:02.874315",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.736491"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[1:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.908105",
      "data": {},
      "engine_id": 1,
      "engine_uuid": "3001de2b-8f6d615f78929b415ce32a8e",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_196",
      "outputs": [],
      "received": "2021-07-01T13:00:09.975987",
      "started": "2021-07-01T13:00:02.875151",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.736820"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[2:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.187626",
      "data": {},
      "engine_id": 2,
      "engine_uuid": "17ab9b06-a011c40b78521577d684cc43",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_197",
      "outputs": [],
      "received": "2021-07-01T13:00:09.357824",
      "started": "2021-07-01T13:00:02.875535",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.737138"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[3:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:08.265058",
      "data": {},
      "engine_id": 3,
      "engine_uuid": "b0fc7fdd-4f70d0fa14e6d61b6dd10591",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_198",
      "outputs": [],
      "received": "2021-07-01T13:00:08.367203",
      "started": "2021-07-01T13:00:02.879771",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.737386"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[4:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:10.097463",
      "data": {},
      "engine_id": 4,
      "engine_uuid": "df021a79-5b9b8028a5aa7141579f4375",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_199",
      "outputs": [],
      "received": "2021-07-01T13:00:10.165784",
      "started": "2021-07-01T13:00:02.905535",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.737609"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[5:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.451208",
      "data": {},
      "engine_id": 5,
      "engine_uuid": "d5e8c80f-c73e533a55bd51afb3d26d6f",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_200",
      "outputs": [],
      "received": "2021-07-01T13:00:09.521678",
      "started": "2021-07-01T13:00:02.911454",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.737837"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[6:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.999804",
      "data": {},
      "engine_id": 6,
      "engine_uuid": "05bc4af5-2756a07a97906403a26df317",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_201",
      "outputs": [],
      "received": "2021-07-01T13:00:10.068886",
      "started": "2021-07-01T13:00:02.914159",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.738055"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[7:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:10.091378",
      "data": {},
      "engine_id": 7,
      "engine_uuid": "887fbe61-e12daf9c20cf4d7f2049052a",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_202",
      "outputs": [],
      "received": "2021-07-01T13:00:10.160114",
      "started": "2021-07-01T13:00:02.915454",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.738867"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[8:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:10.050448",
      "data": {},
      "engine_id": 8,
      "engine_uuid": "94165e70-defdad59b99a71bcfc7fee1b",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_203",
      "outputs": [],
      "received": "2021-07-01T13:00:10.118657",
      "started": "2021-07-01T13:00:02.974863",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.743110"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[9:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.935611",
      "data": {},
      "engine_id": 9,
      "engine_uuid": "2781e7ad-1dac46664dfe0486beed5085",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_204",
      "outputs": [],
      "received": "2021-07-01T13:00:10.002999",
      "started": "2021-07-01T13:00:02.982118",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.743427"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[10:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.735706",
      "data": {},
      "engine_id": 10,
      "engine_uuid": "c577ad81-859a4147a866001c6ab7edbc",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_205",
      "outputs": [],
      "received": "2021-07-01T13:00:09.802949",
      "started": "2021-07-01T13:00:02.975548",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.744451"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[11:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:10.021628",
      "data": {},
      "engine_id": 11,
      "engine_uuid": "310d5bdb-ac6b43b8c2fa4ce0e08d4dde",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_206",
      "outputs": [],
      "received": "2021-07-01T13:00:10.089942",
      "started": "2021-07-01T13:00:02.975383",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.747079"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[12:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.805261",
      "data": {},
      "engine_id": 12,
      "engine_uuid": "4f5b193d-7218dbf2d572c5d34fb0c351",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_207",
      "outputs": [],
      "received": "2021-07-01T13:00:09.875669",
      "started": "2021-07-01T13:00:03.433969",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.747879"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[13:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:08.357101",
      "data": {},
      "engine_id": 13,
      "engine_uuid": "dc16ac72-2a23f6e02bf1ab0367996f31",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_208",
      "outputs": [],
      "received": "2021-07-01T13:00:08.424425",
      "started": "2021-07-01T13:00:02.975040",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.749388"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[14:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.115906",
      "data": {},
      "engine_id": 14,
      "engine_uuid": "b1b15909-7df755cb0ca4842dcf837388",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_209",
      "outputs": [],
      "received": "2021-07-01T13:00:09.353269",
      "started": "2021-07-01T13:00:02.975102",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.751631"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[15:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.054069",
      "data": {},
      "engine_id": 15,
      "engine_uuid": "35441035-b68a08f2ce9fdaaecc4c1152",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_210",
      "outputs": [],
      "received": "2021-07-01T13:00:09.187453",
      "started": "2021-07-01T13:00:02.975259",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.755818"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[16:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.742264",
      "data": {},
      "engine_id": 16,
      "engine_uuid": "114c48af-f61763ef6f909a7c9c57eadf",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_211",
      "outputs": [],
      "received": "2021-07-01T13:00:09.820609",
      "started": "2021-07-01T13:00:02.975007",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.759304"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[17:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.411329",
      "data": {},
      "engine_id": 17,
      "engine_uuid": "b9f25972-9860cac53a7279b6d657e013",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_212",
      "outputs": [],
      "received": "2021-07-01T13:00:09.478262",
      "started": "2021-07-01T13:00:02.975665",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.761341"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[18:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:10.058271",
      "data": {},
      "engine_id": 18,
      "engine_uuid": "a3d4ceba-416ca9a937350119e602dce6",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_213",
      "outputs": [],
      "received": "2021-07-01T13:00:10.129267",
      "started": "2021-07-01T13:00:03.225048",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.762976"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[19:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.709040",
      "data": {},
      "engine_id": 19,
      "engine_uuid": "75a193b4-0f391c1cfac9198c4594ec11",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_214",
      "outputs": [],
      "received": "2021-07-01T13:00:09.776962",
      "started": "2021-07-01T13:00:02.975049",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.763496"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[20:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.662768",
      "data": {},
      "engine_id": 20,
      "engine_uuid": "0665206f-9c4b6de27b832be25a546eda",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_215",
      "outputs": [],
      "received": "2021-07-01T13:00:09.731484",
      "started": "2021-07-01T13:00:02.975118",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.764070"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[21:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.247147",
      "data": {},
      "engine_id": 21,
      "engine_uuid": "f4d2b7e6-a74633d876a77a8f458bf230",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_216",
      "outputs": [],
      "received": "2021-07-01T13:00:09.361268",
      "started": "2021-07-01T13:00:02.975667",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.764473"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[22:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:08.791709",
      "data": {},
      "engine_id": 22,
      "engine_uuid": "ec0c4b8f-088d8e7a6f69cb1a0e8ce98c",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_217",
      "outputs": [],
      "received": "2021-07-01T13:00:08.861981",
      "started": "2021-07-01T13:00:02.975155",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.770035"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[23:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.812744",
      "data": {},
      "engine_id": 23,
      "engine_uuid": "90c87f1c-dcdaeb6468e83b37671d2b08",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_218",
      "outputs": [],
      "received": "2021-07-01T13:00:09.881496",
      "started": "2021-07-01T13:00:02.975198",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.770565"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[24:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:10.068600",
      "data": {},
      "engine_id": 24,
      "engine_uuid": "0b41dab6-fb4b93bf5c4a59f7fbbc39c5",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_219",
      "outputs": [],
      "received": "2021-07-01T13:00:10.135740",
      "started": "2021-07-01T13:00:02.975720",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.771048"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[25:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.502428",
      "data": {},
      "engine_id": 25,
      "engine_uuid": "bd051d77-53f49e5e830935bfb9c82b11",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_220",
      "outputs": [],
      "received": "2021-07-01T13:00:09.603255",
      "started": "2021-07-01T13:00:02.975263",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.772445"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[26:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.890395",
      "data": {},
      "engine_id": 26,
      "engine_uuid": "0e78f71b-bcf15a4a02250271a6df2cd6",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_221",
      "outputs": [],
      "received": "2021-07-01T13:00:09.959836",
      "started": "2021-07-01T13:00:02.975119",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.778519"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[27:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.828572",
      "data": {},
      "engine_id": 27,
      "engine_uuid": "e22a045c-d3294a1b4a2622a05d491c0e",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_222",
      "outputs": [],
      "received": "2021-07-01T13:00:09.897950",
      "started": "2021-07-01T13:00:02.981465",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.779392"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[28:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:10.109221",
      "data": {},
      "engine_id": 28,
      "engine_uuid": "36c7355e-2b0037838ba4ae1211ce2021",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_223",
      "outputs": [],
      "received": "2021-07-01T13:00:10.179417",
      "started": "2021-07-01T13:00:02.977269",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.780135"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[29:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.881538",
      "data": {},
      "engine_id": 29,
      "engine_uuid": "e819f000-12e508990763c571b789450f",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_224",
      "outputs": [],
      "received": "2021-07-01T13:00:09.950769",
      "started": "2021-07-01T13:00:02.975207",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.781262"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[30:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.630215",
      "data": {},
      "engine_id": 30,
      "engine_uuid": "95280ba8-434732dc11b4e43b969298da",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_225",
      "outputs": [],
      "received": "2021-07-01T13:00:09.700234",
      "started": "2021-07-01T13:00:02.975174",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.782570"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[31:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.031535",
      "data": {},
      "engine_id": 31,
      "engine_uuid": "71c5d4dd-edd4c4aee26481efdd619030",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_226",
      "outputs": [],
      "received": "2021-07-01T13:00:09.186235",
      "started": "2021-07-01T13:00:03.621023",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.784350"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[32:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.252792",
      "data": {},
      "engine_id": 32,
      "engine_uuid": "7d82734f-374da07c7a194803ba39d73b",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_227",
      "outputs": [],
      "received": "2021-07-01T13:00:09.363214",
      "started": "2021-07-01T13:00:02.977304",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.785348"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[33:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.817389",
      "data": {},
      "engine_id": 33,
      "engine_uuid": "2c9f8d02-7602e9033a666e13c5150158",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_228",
      "outputs": [],
      "received": "2021-07-01T13:00:09.884188",
      "started": "2021-07-01T13:00:02.975329",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.787556"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[34:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:10.008341",
      "data": {},
      "engine_id": 34,
      "engine_uuid": "32129703-87c228b1d47acd79eea3843f",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_229",
      "outputs": [],
      "received": "2021-07-01T13:00:10.076165",
      "started": "2021-07-01T13:00:02.975431",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.788720"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[35:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:10.054965",
      "data": {},
      "engine_id": 35,
      "engine_uuid": "b9a4ab7d-1957488bec00cdcad3e10d70",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_230",
      "outputs": [],
      "received": "2021-07-01T13:00:10.125196",
      "started": "2021-07-01T13:00:03.617242",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.789116"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[36:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:08.706338",
      "data": {},
      "engine_id": 36,
      "engine_uuid": "5dc694f4-ff68f7cd771380e1481e765e",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_231",
      "outputs": [],
      "received": "2021-07-01T13:00:08.772946",
      "started": "2021-07-01T13:00:02.975365",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.792009"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[37:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.331743",
      "data": {},
      "engine_id": 37,
      "engine_uuid": "831d3ebc-e1519f4da19fa85329126dd0",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_232",
      "outputs": [],
      "received": "2021-07-01T13:00:09.399637",
      "started": "2021-07-01T13:00:02.975407",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.792386"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[38:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.729814",
      "data": {},
      "engine_id": 38,
      "engine_uuid": "433f29b3-d5dd913c0621e1a99c2e9ae5",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_233",
      "outputs": [],
      "received": "2021-07-01T13:00:09.797823",
      "started": "2021-07-01T13:00:02.980779",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.792654"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[39:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.843989",
      "data": {},
      "engine_id": 39,
      "engine_uuid": "d3a0fbc7-8de2c19658d80b14d52e1a55",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_234",
      "outputs": [],
      "received": "2021-07-01T13:00:09.914660",
      "started": "2021-07-01T13:00:02.975303",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.793043"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[40:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.838375",
      "data": {},
      "engine_id": 40,
      "engine_uuid": "84a68b29-0c81da2290a343b0d3f84fa5",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_235",
      "outputs": [],
      "received": "2021-07-01T13:00:09.907480",
      "started": "2021-07-01T13:00:02.978189",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.793314"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[41:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.105667",
      "data": {},
      "engine_id": 41,
      "engine_uuid": "7b232b71-943f4f505a9a90e825d44342",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_236",
      "outputs": [],
      "received": "2021-07-01T13:00:09.191375",
      "started": "2021-07-01T13:00:02.975582",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.793613"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[42:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.938834",
      "data": {},
      "engine_id": 42,
      "engine_uuid": "3f33ae79-ca72a98d07fc740138dc3cf4",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_237",
      "outputs": [],
      "received": "2021-07-01T13:00:10.005857",
      "started": "2021-07-01T13:00:02.975428",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.793858"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[43:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:10.055724",
      "data": {},
      "engine_id": 43,
      "engine_uuid": "3903e3fe-0de9b15c1041089a0bbe7c60",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_238",
      "outputs": [],
      "received": "2021-07-01T13:00:10.127280",
      "started": "2021-07-01T13:00:02.980200",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.794118"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[44:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.754129",
      "data": {},
      "engine_id": 44,
      "engine_uuid": "8fe6e59d-1cc0683bc44179b50b757dad",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_239",
      "outputs": [],
      "received": "2021-07-01T13:00:09.828748",
      "started": "2021-07-01T13:00:02.981743",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.794375"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[45:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.630495",
      "data": {},
      "engine_id": 45,
      "engine_uuid": "a6a6dc16-93a5d9f4ff026325fb6dbea6",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_240",
      "outputs": [],
      "received": "2021-07-01T13:00:09.702681",
      "started": "2021-07-01T13:00:02.981555",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.794715"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[46:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.798383",
      "data": {},
      "engine_id": 46,
      "engine_uuid": "680e984f-d159cc617330be26aeaf175d",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_241",
      "outputs": [],
      "received": "2021-07-01T13:00:09.869072",
      "started": "2021-07-01T13:00:02.976059",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.794978"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[47:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.483310",
      "data": {},
      "engine_id": 47,
      "engine_uuid": "a85b48fa-1528c0d98db5f221397df427",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_242",
      "outputs": [],
      "received": "2021-07-01T13:00:09.552407",
      "started": "2021-07-01T13:00:02.976310",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.795217"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[48:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.861697",
      "data": {},
      "engine_id": 48,
      "engine_uuid": "dc5b621a-4056ed99fabff2bdc62a647c",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_243",
      "outputs": [],
      "received": "2021-07-01T13:00:09.929583",
      "started": "2021-07-01T13:00:02.976418",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.795445"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[49:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.682296",
      "data": {},
      "engine_id": 49,
      "engine_uuid": "159b26b3-35044c6d6d61ed06064a92ac",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_244",
      "outputs": [],
      "received": "2021-07-01T13:00:09.756646",
      "started": "2021-07-01T13:00:02.976019",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.796072"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[50:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.806321",
      "data": {},
      "engine_id": 50,
      "engine_uuid": "a250e10b-e6cbbf6a23729203b434db8b",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_245",
      "outputs": [],
      "received": "2021-07-01T13:00:09.877752",
      "started": "2021-07-01T13:00:02.981608",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.797311"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[51:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.685071",
      "data": {},
      "engine_id": 51,
      "engine_uuid": "db7a3c7a-84cf5bd8e88dc95adc86c0b7",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_246",
      "outputs": [],
      "received": "2021-07-01T13:00:09.753109",
      "started": "2021-07-01T13:00:02.980869",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.798269"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[52:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.822760",
      "data": {},
      "engine_id": 52,
      "engine_uuid": "6d90b2e9-3f8f8290c2cee7501b5d1664",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_247",
      "outputs": [],
      "received": "2021-07-01T13:00:09.895510",
      "started": "2021-07-01T13:00:02.981385",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.800141"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[53:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.930188",
      "data": {},
      "engine_id": 53,
      "engine_uuid": "189fdf1e-8d1a3d1fd724dd4d7171f791",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_248",
      "outputs": [],
      "received": "2021-07-01T13:00:10.000969",
      "started": "2021-07-01T13:00:02.976125",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.800771"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[54:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.982131",
      "data": {},
      "engine_id": 54,
      "engine_uuid": "d8bd4e39-8396557feefb58a8bcf0545d",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_249",
      "outputs": [],
      "received": "2021-07-01T13:00:10.052552",
      "started": "2021-07-01T13:00:03.536265",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.801275"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[55:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.098973",
      "data": {},
      "engine_id": 55,
      "engine_uuid": "ba4ef2c0-2ecee6e32415c9929cae403f",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_250",
      "outputs": [],
      "received": "2021-07-01T13:00:09.356191",
      "started": "2021-07-01T13:00:02.976321",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.801680"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[56:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.256383",
      "data": {},
      "engine_id": 56,
      "engine_uuid": "8fc80ddf-57fe266d57f503650ab6c399",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_251",
      "outputs": [],
      "received": "2021-07-01T13:00:09.365732",
      "started": "2021-07-01T13:00:02.979597",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.802592"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[57:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.696256",
      "data": {},
      "engine_id": 57,
      "engine_uuid": "665c3adf-9ade0b3dd34919f94b41d631",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_252",
      "outputs": [],
      "received": "2021-07-01T13:00:09.766187",
      "started": "2021-07-01T13:00:02.981281",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.802871"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[58:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:10.056332",
      "data": {},
      "engine_id": 58,
      "engine_uuid": "7f2dd0b7-eca90acf8cf2adc90145c362",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_253",
      "outputs": [],
      "received": "2021-07-01T13:00:10.128474",
      "started": "2021-07-01T13:00:02.976445",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.803635"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[59:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.987939",
      "data": {},
      "engine_id": 59,
      "engine_uuid": "c9ba8be2-40dafd33e1401fa876887248",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_254",
      "outputs": [],
      "received": "2021-07-01T13:00:10.059873",
      "started": "2021-07-01T13:00:02.976276",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.804253"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[60:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.236342",
      "data": {},
      "engine_id": 60,
      "engine_uuid": "3577a573-9ad726b98b611cead31b4d4b",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_255",
      "outputs": [],
      "received": "2021-07-01T13:00:09.359357",
      "started": "2021-07-01T13:00:02.981097",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.804768"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[61:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.795745",
      "data": {},
      "engine_id": 61,
      "engine_uuid": "cc602c02-9daa79fe97681cec95a7ce2d",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_256",
      "outputs": [],
      "received": "2021-07-01T13:00:09.866327",
      "started": "2021-07-01T13:00:02.981073",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.805030"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[62:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.388288",
      "data": {},
      "engine_id": 62,
      "engine_uuid": "44962377-2691158e15e2f2ca732f082c",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_257",
      "outputs": [],
      "received": "2021-07-01T13:00:09.456317",
      "started": "2021-07-01T13:00:02.981182",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.805273"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[63:6]: \u001b[0m255.8632962531706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2021-07-01T13:00:09.469134",
      "data": {},
      "engine_id": 63,
      "engine_uuid": "d677c0e8-992305e7cea3c329b62fd2d2",
      "error": null,
      "execute_input": "np.linalg.norm(data, 2)",
      "execute_result": {
       "data": {
        "text/plain": "255.8632962531706"
       },
       "execution_count": 6,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "be363722-7df02b3076b128d9dba47bbf_258",
      "outputs": [],
      "received": "2021-07-01T13:00:09.572460",
      "started": "2021-07-01T13:00:02.981126",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2021-07-01T13:00:02.806008"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%px np.linalg.norm(data, 2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can also do the same thing [with MPI](MPI%20Broadcast.ipynb)."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "state": {
     "0788aace1dd94f7abe403a739234b4dc": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "0bfd0ca438f743d3bcdda7c389045643": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "13a4c574d89540688038576d8d25340f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "177ae4743f2046589517b270ffdbbddc": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "182236a1fc014afaa280c594569df5bb": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "18d18c6fbb8348bdaf335352e51b5ed0": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "1ab2067dd41b4c219155c5aada21fbf8": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_7908e2b18c2b4e6c981bab8c238feac7",
       "style": "IPY_MODEL_13a4c574d89540688038576d8d25340f",
       "value": " 64/64 [00:14&lt;00:00,  4.63tasks/s]"
      }
     },
     "1fddb505455d45a084d0047d6993ecc6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_46234f1913a64dccaff95185b2ff1e58",
        "IPY_MODEL_2bd5fe55609741628592765cce426fc2",
        "IPY_MODEL_3e9d6d0f681444cc9ddff8c94d728c6f"
       ],
       "layout": "IPY_MODEL_a738d2d75f2e49dea2dcd16e2e88ec7b"
      }
     },
     "2275989033ac4ce496f94499f02a6559": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_b93d34bd7b2a4cd2b8afcbfdf9b5ecb7",
       "style": "IPY_MODEL_9a6f895f17bf497ca695508beb58e1d4",
       "value": " 64/64 [00:14&lt;00:00,  4.71tasks/s]"
      }
     },
     "2bd5fe55609741628592765cce426fc2": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_51435afe1f754065abfe9aada9c284a1",
       "max": 64,
       "style": "IPY_MODEL_ea5a1b591ce44963a109d4f0c0857451",
       "value": 64
      }
     },
     "2d1aa260041e47cd84f3dcc3d87300b7": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_cb4b3dfb181644fba4d154546f441005",
        "IPY_MODEL_cceeb134a7c84eda977b39600727bd9f",
        "IPY_MODEL_1ab2067dd41b4c219155c5aada21fbf8"
       ],
       "layout": "IPY_MODEL_bfeebd545170446dbf1705b60e3159ec"
      }
     },
     "33e8acf29d5a472c8170b851caa48725": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "3e9d6d0f681444cc9ddff8c94d728c6f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_7603540b67ec40928e4c0123ef81164b",
       "style": "IPY_MODEL_8b36bb9f9eeb41108915b81cafed86e6",
       "value": " 64/64 [00:01&lt;00:00, 79.93tasks/s]"
      }
     },
     "46234f1913a64dccaff95185b2ff1e58": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_ff051eacafe1426ca9001829bc8d938c",
       "style": "IPY_MODEL_6a9780d331954eff9137b41e210d79d0",
       "value": "load_memmap: 100%"
      }
     },
     "48d83463454f4485bcaa533c84d5da99": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_da8ed7bcef0f4e668c007354fb707b61",
       "max": 64,
       "style": "IPY_MODEL_5dbcda2ebc87403b9981bbb12b0c4eb4",
       "value": 64
      }
     },
     "51435afe1f754065abfe9aada9c284a1": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "533595262b0942e080991fb67546d8e7": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "5aaaf723609549e9b2e4df2cff46dad0": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_968251256f7244d89e44a6aaf626580c",
       "style": "IPY_MODEL_18d18c6fbb8348bdaf335352e51b5ed0",
       "value": " 64/64 [00:01&lt;00:00, 79.87tasks/s]"
      }
     },
     "5dbcda2ebc87403b9981bbb12b0c4eb4": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "694099ab95124e83b4442ae57a8178e8": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_ae20cb4c900e45a79639c0bb177ef4d2",
        "IPY_MODEL_48d83463454f4485bcaa533c84d5da99",
        "IPY_MODEL_2275989033ac4ce496f94499f02a6559"
       ],
       "layout": "IPY_MODEL_0788aace1dd94f7abe403a739234b4dc"
      }
     },
     "6a56cddaa44a4077811f04b7332e064b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "6a9780d331954eff9137b41e210d79d0": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "7603540b67ec40928e4c0123ef81164b": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "7908e2b18c2b4e6c981bab8c238feac7": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "8b36bb9f9eeb41108915b81cafed86e6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "968251256f7244d89e44a6aaf626580c": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "9a6f895f17bf497ca695508beb58e1d4": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "a70a58988815498ea5b1a10c9209c872": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "a738d2d75f2e49dea2dcd16e2e88ec7b": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "ae20cb4c900e45a79639c0bb177ef4d2": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_d039b5c532cf4d1f97e252f1f4d2f473",
       "style": "IPY_MODEL_b5f2b7d6f733435b838bc4b29b56962c",
       "value": "_push: 100%"
      }
     },
     "b0a855631a0448e9b6a37cc2c85e337d": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_0bfd0ca438f743d3bcdda7c389045643",
       "max": 64,
       "style": "IPY_MODEL_f3db0985c85c40e7a573beee0ee12f2f",
       "value": 64
      }
     },
     "b5f2b7d6f733435b838bc4b29b56962c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "b93d34bd7b2a4cd2b8afcbfdf9b5ecb7": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "bfeebd545170446dbf1705b60e3159ec": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "cb4b3dfb181644fba4d154546f441005": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_a70a58988815498ea5b1a10c9209c872",
       "style": "IPY_MODEL_33e8acf29d5a472c8170b851caa48725",
       "value": "_push: 100%"
      }
     },
     "cceeb134a7c84eda977b39600727bd9f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_177ae4743f2046589517b270ffdbbddc",
       "max": 64,
       "style": "IPY_MODEL_6a56cddaa44a4077811f04b7332e064b",
       "value": 64
      }
     },
     "d039b5c532cf4d1f97e252f1f4d2f473": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "d19cd76f73ad415399b3256ff7f64239": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_de5c505e54994d04839843c9abc524b5",
       "style": "IPY_MODEL_533595262b0942e080991fb67546d8e7",
       "value": "load_memmap: 100%"
      }
     },
     "da8ed7bcef0f4e668c007354fb707b61": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "dbc9f66eb2564d6b9d535a33ab325ddd": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_d19cd76f73ad415399b3256ff7f64239",
        "IPY_MODEL_b0a855631a0448e9b6a37cc2c85e337d",
        "IPY_MODEL_5aaaf723609549e9b2e4df2cff46dad0"
       ],
       "layout": "IPY_MODEL_182236a1fc014afaa280c594569df5bb"
      }
     },
     "de5c505e54994d04839843c9abc524b5": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "ea5a1b591ce44963a109d4f0c0857451": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "f3db0985c85c40e7a573beee0ee12f2f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "ff051eacafe1426ca9001829bc8d938c": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     }
    },
    "version_major": 2,
    "version_minor": 0
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
